RAM na Marsie - wywiad z Mike'm Delimanem
Mike
Deliman jest jednym z niewielu ludzi na świecie, który może pochwalić się tym,
że stworzył system operacyjny, który świetnie sprawdził się w Kosmosie - to on,
wraz z grupą współpracowników z firmy Wind River Systems, jest autorem systemu
zastosowanego m.in. w sondzie Pathfinder oraz robotach eksplorujących
powierzchnię Marsa - Spirit oraz Opportunity. Nasi koledzy z amerykańskiego
oddziału PC Worlda mieli okazję z nim porozmawiać.
Rozmowa z Delimanem odbyła się w dwa dni po tym, jak robot Spirit wznowił swą
misję po serii problemów technicznych (jak się później okazało, problem był
jeden, z tym, że wystąpił wielokrotnie). Poniżej prezentujemy jej obszerne
fragmenty.
PC World: Na czym polegał problem ze Spirit?
Deliman: Krótka, "grzeczna" wersja jest taka, że zabrakło pamięci RAM i system
musiał "kolejkować" kolejne zadania, co z kolei sprawiało, że absorbował coraz
więcej pamięci RAM... Tak powstał "efekt kaskady". Trzeba pamiętać, że
zastosowany w Spirit system wykonuje setki działań jednocześnie - dlatego łatwo
o wyczerpanie się zasobów pamięci RAM. W takiej sytuacji system zaczyna się
resetować - z tego co wiem, Spirit wyłączał się i włączał ponad 60 razy, zanim
zaczęły się wyczerpywać akumulatory.
Mówiło sie także, że to może być problem z pamięcią flash - skąd takie głosy?
Pamięc flash wykorzystywana jest przez Spirit do przechowywania wszystkich
danych, zarówno plików systemowych, jak i fotografii, danych naukowych itp.
Czasami system zapisuje części tych danych w pamięci RAM - a jako, że na
pokładzie Spirit jest tylko 32 MB RAMu, to czasami różne procesy i aplikacje
odwoływały się zbyt często tych samych obszarów RAMu - wtedy zdarzało się, że
system szwankował.
Dlaczego więc nie zaopatrzono robota w więcej RAMu?
Trudno o komponenty, który bez problemów będą działały w przestrzeni kosmicznej
- takie urządzenia są bardzo, bardzo, bardzo drogie. Dlatego też na pokładzie
Spirit mieliśmy procesor taktowany zegarem 20 MHz i 32 MB pamięci RAM - a i tak
taki zestaw (notabene, bardzo podobny do komputera IBM RS 6000 z 1990 r.)
kosztował ponad 300 tys. USD.
Skoro teraz wiecie już, co spowodowało problem, czy uaktualniliście system
operacyjny Spirit?
Zrobiliśmy co tylko było możliwe - usunęliśmy część starych i niepotrzebnych
plików z pamięci flash, co sprawiło, że system przestał się ustawicznie
resetować i nie "pożerał" już tak gwałtownie RAMu. Mówiąc w skrócie -
określiliśmy (w przybliżeniu), ile operacji może być uruchomione jednocześnie -
tak, by nie powodowało to żadnych problemów. Teraz pracuję nad zdefiniowaniem
optymalnejliczby katalogów i plików, ich rozmiarów, a także liczby uruchomionych
jednocześnie aplikacji - tak by ich działanie nie zakłócało pracy systemu.
Czym właściwie jest zastosowany w marsjańskich robotach "system operacyjny w
czasie rzeczywistym"? Co odróżnia takie rozwiązanie od systemów stosowanych
przez nas w "pecetach"?
W systemach stosowanych w komputerach PC mamy do czynienia z pewną grupą
uruchomionych jednocześnie procesów, które mają restrykcyjnie przypisane obszary
pamięci i nie powinny ze sobą interferować. W przypadku "systemu operacyjnego w
czasie rzeczywistym" sprawa jest trudniejsza, bo nie wykorzystuje on twardego
dysku (np. do buforowania danych) - tu wszystko odbywa się w pamięci RAM, bo tak
jest po prostu szybciej. Problem polega na tym, że wszystkie polecenia muszą
zostać wykonane natychmiast - bo nie ma dysku, na którym można by coś "odłożyć
na później" (czyli zbuforować). Dlatego też system musi zostać zoptymalizowany
tak, by zajmował jak najmniej pamięci - naszemu wystarczają zaledwie 4 MB. A
poza tym - w Kosmosie nie ma żartów. Jeżeli zajdzie coś nieprzewidzianego, to
system nie może się "zastanawiać" - potrzebna jest natychmiastowa reakcja.
Wygląda na to, że takie oprogramowania ma same zalety - dlaczego więc nie
wykorzystujemy go w domowych komputerach?
To proste - nie ma szans, aby możliwe było "upchnięcie" np. systemu Windows i
wszystkich aplikacji w pamięci RAM. Tu potrzebne jest wirtualna pamięć - czyli
twardy dysk. A to znacząco zwalnia cały proces.
[PCWK Online]
|